Modern vehicles use a number of communication systems and/or networks. Each of these communication systems and/or networks may have a bus structure that is open or proprietary. Each of these buses may also be specifically designed to work in a vehicle or may be available as a general communication protocol. These communication systems and/or networks connect the various individual components of the vehicles through their respective buses. Examples of proprietary vehicle bus architecture include Controller Area Network (CAN) Bus, Local Interconnect Network (LIN) Bus, and the various Original Equipment manufacturer (OEM) Bus among others. Examples of open and general bus architecture include wired or wireless Ethernet and Low-Voltage Differential Signaling (LVDS) among others.
Taking the CAN bus for example, the CAN bus is a serial network developed primarily for use with automotive applications. CAN bus allows devices and microcontrollers in a vehicle to communicate with each other without a host computer.
The CAN protocol allows various devices and microcontrollers to be connected to a single CAN bus. According to the protocol, communication along the CAN bus is message-based to allow messages and data to be sent from one connected device to another.
To facilitate communication on the CAN bus without the need of a host computer, CAN features an arbitration-free transmission mechanism. A CAN transmission includes an arbitration field (message ID) representing the priority of the message being transmitted. A dominant bit (0′) indicates a higher priority than a recessive bit (1′). For example, in a hypothetical two-bit ID CAN network, a device sending a ‘10’ ID will have priority over a device sending a ‘11’ ID on the CAN bus. In this example, both devices have a recessive bit in the first bit; however, the first device has a dominant second bit which could be used to arbitrate against a recessive second bit in the second device. The second device will back-off from transmitting over the bus upon this determination in favor of the second device and will attempt to retransmit a few clock cycles after the first device has finished transmitting. It is recognized that each message ID transmitted must be unique over the CAN bus for this arbitration-free transmission mechanism. According to the CAN specification, standard CAN (version 2.0A) uses 11-bit IDs, and extended CAN (version 2.0B) uses 29-bit IDs.
The CAN specification (ISO 11898) further described two types of CAN buses, the high-speed CAN bus (ISO 11898-2) (such as for engine, suspension, and transmission controllers and safety equipment) and the low-speed CAN bus (ISO 11898-3) (such as for less critical components including non-safety sensors). The high-speed CAN bus is designed to carry data at high speed (up to 1 Mbit/s in some implementation). The low-speed CAN bus is designed to carry data at a lower speed (up to 125 Kbit/s in some implementation) but is more fault tolerant than the high-speed CAN bus. Further, the low-speed CAN bus can serves as a back-up for the high-speed CAN bus in case there is a failure to the high-speed CAN bus.
As usage of the CAN standard evolves, many vehicles and systems implementing CAN are using both a high-speed and a low-speed CAN bus in parallel. The high-speed CAN bus carries information that is vital for vehicle operation or safety and is delivered to various part of the vehicle or system in substantially real time. For example, the high-speed CAN bus would be used in a situation where an airbag deploys. When sensors in the bumper or at the front of the vehicle indicate that the vehicle has been involved in a frontal collision, the sensors can send priority information via the high-speed CAN bus to the airbag deployment unit to deploy the airbag. The low-speed CAN bus would be used for other less critical applications.
A number of extensions have been proposed and used to extend the capabilities of the various bus architectures. For example, On-Board Diagnostics (OBD) adds support for requesting data from vehicle components for diagnostics purposes using Parameter Identifiers (PIDs). While OBD is designed to work with CAN bus, OBD can be implemented to work with other general and/or OEM specific buses. Further, specific vehicle components such as the Engine Control Unit (ECU), Transmission Control Unit (TCU), Anti-lock Braking System (ABS), and generally Body Control Modules (BCMs) can have specific protocol extensions to work with the various bus architectures. Further, extensions to the bus architectures are needed to support carrying information regarding various environmental type issues such as emissions information to comply with various government regulation mandates.
Vehicles, particularly passenger vehicles, are evolving rapidly with emerging safety, entertainment, and communication technologies. Existing vehicle bus protocols, which are largely designed for safety, are generally unsuitable for other non-safety communications, due to low bus bandwidth and transmission speed. There are therefore various needs in the art including improving information flow between vehicle components, leveraging the various communication systems and/or networks in the art to enhance vehicle safety, data security, and/or data processing, and providing remote authorized third party (i.e. peace officers, vehicle manufacturers, vehicle security services, and owners) access to a vehicle's functions and state information while maintaining security against unauthorized parties and components.